#ifndef INSERT_INDEX_MANAGER_H
#define INSERT_INDEX_MANAGER_H

#include <wx/arrstr.h>

class InsertIndexManager {
  public:
    enum eFileSorting {
      SortByFilePath = 0,    // C:\a\b.txt < C:\b\a.txt
      SortByFileName         // C:\a\b.txt > C:\b\a.txt
    };

  public:

    InsertIndexManager( eFileSorting fileSorting = SortByFilePath )
      : m_SortedStringArray()
      , m_FileSorting( fileSorting ) {
    }


    virtual ~InsertIndexManager() {}


    long GetInsertionIndex( const wxString& filePath, long nbItemstoInsert = 1 );


    void Reset() {m_SortedStringArray.Empty();}

    // Accessors
    eFileSorting GetFileSorting() const                   {return m_FileSorting;}
    void         SetFileSorting( eFileSorting fileSorting ) {m_FileSorting = fileSorting;}

  private:
    wxSortedArrayString m_SortedStringArray;
    eFileSorting        m_FileSorting;
};

#endif
